package com.ithema.service;

import com.ithema.dao.BaseStudentDao;
import com.ithema.domain.Student;
import com.ithema.factory.StudentDaoFactory;

import java.util.Arrays;
import java.util.List;

/*
    业务员类
        1. 接收客服传过来的业务数据
        2. 指挥库管操作数据
        3. 返回结果给客服
 */
public class StudentService {
    //需求: 不管是用StudentDao还是用OtherStudentDao,要求,业务员中的代码不要改变!
    //Service和Dao之间耦合性太强了   -- 解耦
    private BaseStudentDao dao = StudentDaoFactory.getStudentDao();

    public boolean addStudent(Student stu) {
        //1. 指挥库管添加学生
        boolean result = dao.addStudent(stu);

        //2. 将库管添加的结果返回给客服
        return result;
    }

    //业务员中查看学生功能
    public List<Student> findAllStudent() {
        //1. 创建库管对象,指挥库管查询所有学生信息
        List<Student> allStudents = dao.findAllStudent();
        return allStudents;
    }

    //业务员中删除学生功能
    public boolean deleteStudent(String delId) {
        //1. 指挥库管对象进行删除功能
        boolean result = dao.deleteStudent(delId);
        //2. 将处理结果返回给客服
        return result;
    }

    //业务员中修改学生功能
    public boolean updateStudent(String updateId, Student newStu) {
        //1. 指挥库管进行修改学生
        boolean result = dao.updateStudent(updateId, newStu);

        //2. 将库管返回的结果再传递给客服
        return result;
    }

    //业务员中校验学号是否存在功能
    public boolean isExists(String id) {
        //指挥库管,查询id在数据仓库中有没有
        int index = dao.getIndex(id);
        //根据index的值来区分学号是否存在
        return index == -1 ? false : true;
    }
}
